import React, { Component } from 'react'

export default class App extends Component {
    UNSAFE_componentWillMount() {
        //初始化状态 , 不能获取dom,不安全且已被18 废弃
        console.log("init");
    }
    componentDidMount() {
        console.log("dom挂在完成");
    }
    componentWillUnmount() {
        console.log("组件卸载前");
    }
    componentWillUpdate() {
        console.log("更新前---不安全 新版会被getSnapshotBeforeUpdate替代");
    }
    shouldComponentUpdate(nextProps, nextState) {
        //新属性  新状态
        console.log("是否阻止更新 false则会阻断生命周期往下执行");
    }
    componentDidUpdate(prevProps, prevState, value) {
        //形参代表老的属性和状态 value getSnapshotBeforeUpdate的返回值
        console.log("更新完");
    }
    componentWillReceiveProps(nextProps) {
        //nextProps 最早获取父组件的传来的属性
        //只要父组件执行了render函数  就会触发 即使没有传属性
        console.log("接受props属性前---会被新版getDerivedStateFromProps替代");
    }
    componentDidCatch() {
        console.log("代表错误,但不会抛出错误,保证应用可用性");
    }
    static getDerivedStateFromProps(nextProps, nextState) {
        //最新的属性和状态
        //初始化会执行一次 父传子 以及后续state更新也会执行
        //需要返回值
        return {}
    }
    getSnapshotBeforeUpdate() {
        //render之后 didupdate之前
        //需要返回值 作为componentDidUpdate的第三个参数
        return 100

    }
    render() {
        return (
            <div>App</div>
        )
    }
}
